﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Data.SqlClient;
using System.Data;
using System.Collections;

using XJX.DBCore;

namespace XJX.DataLayer
{
    public sealed class Log : XJX.DBCore.DBObject
    {
        public Log(string newConnectionString) : base(newConnectionString) { }



        //验证用户登录
        public int Verification_User_Log
            (
            string mobile,
            string pwd,
            out string ReturnFieldValue   //返回字段值
            )
        {
            int rowsAffected;//受影响的行数．
            int ReturnValue;          //返回参数值

            SqlParameter[]
                parameters = {
								 new SqlParameter("@mobile",SqlDbType.VarChar,11), 
								 new SqlParameter("@pwd",SqlDbType.VarChar,8),
			};

            parameters[0].Value = mobile;
            parameters[1].Value = pwd;

            try
            {
                //以下语句可以得到三个值，从而进行流程判断。一个是返回值，一个是影响的行数，一个是返回的指定字段值。
                ReturnValue = RunProcedure("Verification_User_Log", parameters, out rowsAffected, out ReturnFieldValue);
            }
            catch (SqlException e)
            {
                throw new System.Exception(e.Message);
            }
            return ReturnValue;//返回0表示用户不存在，返回1表示被限制登录，为98时表示插入登录表时错，为2表示正确。
        }

        //修改家庭登录密码
        public bool Modify_One_Family_PWD(string UID, string PWD)
        {
            int rowsAffected;

            SqlParameter[]
                parameters = {
								 new SqlParameter("@UID",SqlDbType.UniqueIdentifier,60), 
								 new SqlParameter("@PWD",SqlDbType.VarChar,8)
			};

            parameters[0].Value = new Guid(UID);
            parameters[1].Value = PWD;

            try
            {
                RunProcedure("Modify_One_Family_PWD", parameters, out rowsAffected);
            }
            catch (SqlException e)
            {
                throw new System.Exception(e.Message);
            }
            return (rowsAffected == 1);
        }

        //添加登录信息
        public bool Add_New_Log(string UID)
        {
            int rowsAffected;//受影响的行数．

            SqlParameter[]
                parameters = {
                                 new SqlParameter("@uid",SqlDbType.UniqueIdentifier )
            };

            parameters[0].Value = new Guid(UID);

            try
            {
                RunProcedure("Add_New_Log", parameters, out rowsAffected);
            }
            catch (SqlException e)
            {
                throw new System.Exception(e.Message);
            }
            return (rowsAffected == 1);//只利用了这一个返回的值
        }

    }
}
